# Music data format

# each ORDER is of the form:
#   .byte (channels-1)
#   channels *
#      .byte channel
#      .word pattern_ptr

# a PATTERN is a stream of 2 byte commands after a 4 byte header
#
# header:
#   .byte speed = frames per channel tick
#   .byte duty = 2-bit starting duty
#   .byte volume = starting volume/lc value
#   .byte sweep = starting sweep value
#
# command:
#   .byte command
#   .byte param
#
#   command:
#     00-AF = note XY
#        XY = X is octave, Y is pitch class
#     BX = repeat
#        command X low nibble
#           0 = offset always (loop forever)
#           1 = offset never (i.e. B1 does nothing)
#           2-F = offset X-1 times, then continue
#                 i.e. X is the number of times the phrase will be heard before continuing
#        param = offset
#           shifts pattern pointer back param commands (i.e. param<<1 bytes) 
#     CX = envelope select
#        X = envelope (0 = none, 1-16 selects envelope from table)
#        param = length of envelope (ticks * 16)
#        does nothing if already using hardware envelope
#     DX = volume slide up
#     EX = volume slide down
#        X low nibble = volume change, DX = up, EX = down
#        param = frames per slide tick
#     FF = pause channel
#        sets var_ch_row to $FF and jumps to channel_off
#     FE = empty
#        does nothing
#     FD = duty
#        channel 5: set var_ch_volume
#        else: set duty bits in var_ch_volume to (param & 3)
#     FC = set repeat point
#        param is ignored, repeat point is set at next command
#     FB = go to repeat point
#        if param is 0: repeat always
#        else: increment repeat point count,
#              if repeat point count == param, skip repeat, set count to 0
#     FA = channel speed
#        param is ticks per channel update
#     F9 = volume
#        channel 5: set var_ch_volume
#        else: set var_ch_volume preserving duty bits
#     F8 = detune
#         var_ch_detune = param
#     F7 = pitch slide
#         var_ch_slide = param
#     F6 = sweep
#         var_ch_sweep = param
#     F5 = envelope
#        if 0: envelope off
#        else: envelope on, no envelope selected (var_ch_envelope_select = $80)
#     F4 = DMC target
#        var_dmc_target = param
#     F3 = change track
#        var_next_track = param
#        var_current_track = 0
#     F2 = do not use
#     F1 = do not use
#     F0 = do not use

SEGMENT { START $8000; END $9FFF; NAME "BANK1E"; };
SEGMENT { START $A000; END $BFFF; NAME "BANK08"; };
SEGMENT { START $C000; END $DFFF; NAME "BANK09"; };
SEGMENT { START $E000; END $FFDF; NAME "BANK1F"; };
SEGMENT { START $FFE0; END $FFFF; NAME "DELETE"; };

# unused bank 1E
RANGE { START $8000; END $9FFF; TYPE Skip; };

# music data banks 08/09
RANGE { START $A000; END $A047; TYPE AddrTable; };
# RANGE { START $A048; END $BFFF; TYPE ByteTable; };
# RANGE { START $C000; END $DFFF; TYPE ByteTable; };
# ranges below at end

# fixed bank 1F

RANGE { START $E000; END $F48F; TYPE ByteTable; }; # unused
RANGE { START $F490; END $FDCA; TYPE Code;      };
RANGE { START $FDCB; END $FDE2; TYPE WordTable; };
RANGE { START $FDE3; END $FDF4; TYPE ByteTable; };
RANGE { START $FDF5; END $FE0E; TYPE AddrTable; };
RANGE { START $FE0F; END $FE3F; TYPE ByteTable; };

RANGE { START $FE40; END $FFFF; TYPE ByteTable; }; # unused

# code labels

LABEL { ADDR $F490; NAME "init"; };

LABEL { ADDR $F4D6; NAME "play_fade"; COMMENT "X = var_play_fade"; };

LABEL { ADDR $F509; NAME "track_load"; };
LABEL { ADDR $F51C; NAME "@load_channel"; };
LABEL { ADDR $F535; NAME "track_loaded"; };
LABEL { ADDR $F536; NAME "play_fade_countdown"; };
LABEL { ADDR $F53D; NAME "play_fade_continue"; };

LABEL { ADDR $F54A; NAME "fade_set_volumes"; COMMENT "A = volume to fade to"; };
LABEL { ADDR $F562; NAME "@fade_0_done"; };
LABEL { ADDR $F577; NAME "@fade_1_done"; };
LABEL { ADDR $F58C; NAME "@fade_2_done"; };
LABEL { ADDR $F5A1; NAME "@fade_3_done"; };
LABEL { ADDR $F5B6; NAME "@fade_4_done"; };
LABEL { ADDR $F5C1; NAME "@fade_dmc_done"; };

LABEL { ADDR $F5C7; NAME "track_none"; };
LABEL { ADDR $F5E1; NAME "channel_update_begin"; };
LABEL { ADDR $F5E4; NAME "channel_update_skip"; };

LABEL { ADDR $F5E5; NAME "skip_channel_extra"; };
LABEL { ADDR $F5EE; NAME "update_extra_A5"; };
LABEL { ADDR $F5F0; NAME "@loop"; };
LABEL { ADDR $F600; NAME "@skip_ch_2"; };
LABEL { ADDR $F60F; NAME "update_extra_A2"; };
LABEL { ADDR $F611; NAME "@loop"; };
LABEL { ADDR $F617; NAME "update_extra_A3"; };
LABEL { ADDR $F619; NAME "@loop"; };
LABEL { ADDR $F61F; NAME "update_extra_A4"; };
LABEL { ADDR $F621; NAME "@loop"; };
LABEL { ADDR $F625; NAME "load_extra"; };
LABEL { ADDR $F63C; NAME "update_channel_extra"; };
LABEL { ADDR $F64E; NAME "begin_channel_extra"; };

LABEL { ADDR $F66B; NAME "track_started"; };
LABEL { ADDR $F66F; NAME "track_continue"; };
LABEL { ADDR $F682; NAME "play_track"; };
LABEL { ADDR $F695; NAME "track_ready"; };
LABEL { ADDR $F69E; NAME "jmp_track_none"; };
LABEL { ADDR $F6A1; NAME "jmp_play_fade"; };
LABEL { ADDR $F6A4; NAME "play"; };
LABEL { ADDR $F6B9; NAME "track_clear"; };

LABEL { ADDR $F6CE; NAME "update_ch_0"; };
LABEL { ADDR $F6F6; NAME "jmp_update_ch_1"; };
LABEL { ADDR $F6F9; NAME "envelope_none_ch_0"; };
LABEL { ADDR $F6FB; NAME "envelope_finished_ch_0"; };
LABEL { ADDR $F6FE; NAME "envelope_continue_ch_0"; };
LABEL { ADDR $F738; NAME "@volume_slide_down"; };
LABEL { ADDR $F744; NAME "@volume_slide_end"; };

LABEL { ADDR $F754; NAME "slide_ch_0"; };
LABEL { ADDR $F75A; NAME "reset_ch_0"; };

LABEL { ADDR $F762; NAME "update_ch_1"; };
LABEL { ADDR $F789; NAME "jmp_update_ch_2"; };
LABEL { ADDR $F78C; NAME "envelope_none_ch_1"; };
LABEL { ADDR $F78E; NAME "envelope_finished_ch_1"; };
LABEL { ADDR $F791; NAME "envelope_continue_ch_1"; };
LABEL { ADDR $F7CB; NAME "@volume_slide_down"; };
LABEL { ADDR $F7D7; NAME "@volume_slide_end"; };
LABEL { ADDR $F7E7; NAME "reset_ch_1"; };
LABEL { ADDR $F7F2; NAME "slide_ch_1"; };

LABEL { ADDR $F7F5; NAME "update_ch_2"; };
LABEL { ADDR $F819; NAME "jmp_update_ch_3"; };
LABEL { ADDR $F81C; NAME "envelope_none_ch_2"; };
LABEL { ADDR $F81E; NAME "envelope_finished_ch_2"; };
LABEL { ADDR $F821; NAME "envelope_continue_ch_2"; };
LABEL { ADDR $F85B; NAME "@volume_slide_down"; };
LABEL { ADDR $F867; NAME "@volume_slide_end"; };
LABEL { ADDR $F877; NAME "reset_ch_2"; };
LABEL { ADDR $F882; NAME "slide_ch_2"; };

LABEL { ADDR $F885; NAME "update_ch_3"; };
LABEL { ADDR $F8AC; NAME "jmp_update_ch_4"; };
LABEL { ADDR $F8AF; NAME "envelope_none_ch_3"; };
LABEL { ADDR $F8B1; NAME "envelope_finished_ch_3"; };
LABEL { ADDR $F8B4; NAME "envelope_continue_ch_3"; };
LABEL { ADDR $F8EE; NAME "@volume_slide_down"; };
LABEL { ADDR $F8FA; NAME "@volume_slide_end"; };
LABEL { ADDR $F90A; NAME "reset_ch_3"; };
LABEL { ADDR $F915; NAME "update_volume_ch_3"; };

LABEL { ADDR $F918; NAME "update_ch_4"; };
LABEL { ADDR $F93C; NAME "jmp_update_ch_5"; };
LABEL { ADDR $F93F; NAME "envelope_none_ch_4"; };
LABEL { ADDR $F941; NAME "envelope_finished_ch_4"; };
LABEL { ADDR $F944; NAME "envelope_continue_ch_4"; };
LABEL { ADDR $F97E; NAME "@volume_slide_down"; };
LABEL { ADDR $F98A; NAME "@volume_slide_end"; };
LABEL { ADDR $F99A; NAME "reset_ch_4"; };
LABEL { ADDR $F9A5; NAME "apply_volume_ch_4"; };

LABEL { ADDR $F9A8; NAME "update_ch_5"; };
LABEL { ADDR $F9BA; NAME "dmc_slide_finished"; }; # TODO better name, other stuff jumps here
LABEL { ADDR $F9DD; NAME "@triangle_paused"; };
LABEL { ADDR $F9F3; NAME "music_skipped"; };
LABEL { ADDR $F9F4; NAME "dmc_increase"; };
LABEL { ADDR $F9FF; NAME "dmc_decrease"; };

LABEL { ADDR $FA43; NAME "reset_channel"; };
LABEL { ADDR $FAB0; NAME "read_music_command_start"; };
LABEL { ADDR $FABD; NAME "read_music_command"; };
LABEL { ADDR $FAF1; NAME "command_FX"; };
LABEL { ADDR $FADB; NAME "command_EX"; };
LABEL { ADDR $FAD7; NAME "command_DX"; };
LABEL { ADDR $FB09; NAME "command_CX"; };
LABEL { ADDR $FB27; NAME "command_BX"; };

LABEL { ADDR $FA0A; NAME "triangle_finish"; };
LABEL { ADDR $FA24; NAME "triangle_skip"; };
LABEL { ADDR $FAE2; NAME "command_DX_EX_common"; };
LABEL { ADDR $FB23; NAME "command_skip"; };
LABEL { ADDR $FB3A; NAME "@do_repeat"; };

LABEL { ADDR $FB47; NAME "note_noise"; };
LABEL { ADDR $FB51; NAME "command_note"; };
LABEL { ADDR $FB6F; NAME "@load_pitch"; };
LABEL { ADDR $FB99; NAME "sweep_ch_1_override_skip"; };
LABEL { ADDR $FB9C; NAME "noise_pitch_skip"; };
LABEL { ADDR $FBB2; NAME "load_pitch_finish"; };
LABEL { ADDR $FBB7; NAME "@raise_octave"; };
LABEL { ADDR $FBBE; NAME "@octave_ready"; };
LABEL { ADDR $FBC2; NAME "freq_low_apply"; };
LABEL { ADDR $FBD3; NAME "@detune_negative"; };
LABEL { ADDR $FBDA; NAME "freq_high_apply"; };
LABEL { ADDR $FBF0; NAME "@freq_high_write_skip"; };

LABEL { ADDR $FBF3; NAME "sweep_ch_1_override"; };

LABEL { ADDR $FC05; NAME "freq_ch_1_override"; };
LABEL { ADDR $FC0D; NAME "slide"; };
LABEL { ADDR $FC21; NAME "@negative"; };
LABEL { ADDR $FC2C; NAME "slide_apply"; };

LABEL { ADDR $FC41; NAME "volume_apply"; };
LABEL { ADDR $FC5C; NAME "volume_ch_1_override"; };
LABEL { ADDR $FC66; NAME "@skip"; };
LABEL { ADDR $FC67; NAME "apply_envelope"; COMMENT "A = var_ch_envelope_select,x & $7F ; A != 0"; };
LABEL { ADDR $FC79; NAME ""; COMMENT "4-bit divide: F3 / (F5 >> 4) ; note that F5 is premultiplied by 16"; };
LABEL { ADDR $FC7F; NAME "@divide_loop"; };
LABEL { ADDR $FC8A; NAME "@divide_carry"; };
LABEL { ADDR $FC91; NAME ""; COMMENT "divide result: A = F3 / (F5 >> 4)"; };
LABEL { ADDR $FCB1; NAME ""; COMMENT "4-bit multiply: (F3 >> 4) * F5 ; note that F3 is premultiplied by 16"; };
LABEL { ADDR $FCB5; NAME "@multiply_loop"; };
LABEL { ADDR $FCBC; NAME "@multiply_carry"; };
LABEL { ADDR $FCBF; NAME ""; COMMENT "multiply result: A = (F3 >> 4) * F5)"; };

LABEL { ADDR $FC97; NAME ""; COMMENT "The address $F400 used here is the ENVELOPE_TABLE above. (LINK)"; };
LABEL { ADDR $FCA8; NAME "@high_nibble"; COMMENT "even frames use the high nibble from the envelope table"; }; # TODO

LABEL { ADDR $FCD9; NAME "slide_triangle"; };
LABEL { ADDR $FCED; NAME "@negative"; };
LABEL { ADDR $FCF8; NAME "@store_high"; };

LABEL { ADDR $FD11; NAME "channel_off"; };
LABEL { ADDR $FD1A; NAME "channel_mask_apply"; };
LABEL { ADDR $FD2A; NAME "channel_mask_ch_1_override"; };
LABEL { ADDR $FD3C; NAME "@skip"; };

LABEL { ADDR $FD3D; NAME "command_FF"; COMMENT "pause channel"; };
LABEL { ADDR $FD93; NAME "command_FE"; COMMENT "empty"; };
LABEL { ADDR $FD51; NAME "command_FD"; COMMENT "set duty"; };
LABEL { ADDR $FD6A; NAME "command_FC"; COMMENT "set repeat point"; };
LABEL { ADDR $FD71; NAME "command_FB"; COMMENT "use repeat point"; };
LABEL { ADDR $FD8B; NAME "command_FA"; COMMENT "set channel speed"; };
LABEL { ADDR $FD96; NAME "command_F9"; COMMENT "set volume"; };
LABEL { ADDR $FDA9; NAME "command_F8"; COMMENT "set detune"; };
LABEL { ADDR $FDAF; NAME "command_F7"; COMMENT "set slide"; };
LABEL { ADDR $FDB5; NAME "command_F6"; COMMENT "set sweep"; };
LABEL { ADDR $FD45; NAME "command_F5"; COMMENT "set envelope"; };
LABEL { ADDR $FDBB; NAME "command_F4"; COMMENT "set DMC target"; };
LABEL { ADDR $FDC2; NAME "command_F3"; COMMENT "set next track"; };

LABEL { ADDR $FD4B; NAME "@skip"; };
LABEL { ADDR $FD64; NAME "@skip"; };
LABEL { ADDR $FD85; NAME "@repeat_point"; };
LABEL { ADDR $FDA3; NAME "@skip"; };


# rodata labels
LABEL { ADDR $A000; NAME "TRACK_PTR_TABLE"; SIZE 72; };
# music data labelled below at end

LABEL { ADDR $BFE9; NAME "PADDING_BFE9"; };
LABEL { ADDR $C000; NAME "UNKNOWN_C000"; };
LABEL { ADDR $CA04; NAME "PADDING_CA04"; };
LABEL { ADDR $D000; NAME "UNKNOWN_D000"; };
LABEL { ADDR $D842; NAME "PADDING_D842"; };
LABEL { ADDR $E000; NAME "UNKNOWN_E000"; };
LABEL { ADDR $EDC4; NAME "PADDING_EDC4"; };

LABEL { ADDR $F400; NAME "ENVELOPE_TABLE"; COMMENT "16 selectable envelopes, each 16 nibbles long."; };
LABEL { ADDR $FDE3; NAME "CHANNEL_ON"; SIZE 6; COMMENT "$4015 register flag for channel on"; };
LABEL { ADDR $FDE9; NAME "CHANNEL_OFF"; SIZE 6; COMMENT "$4015 register flag for channel off"; };
LABEL { ADDR $FDEF; NAME "CHANNEL_SELECT"; SIZE 6; COMMENT "$400X register offset for channels"; };
LABEL { ADDR $FDCB; NAME "TUNING_TABLE"; SIZE 24; };
LABEL { ADDR $FDF5; NAME "COMMAND_FX_TABLE"; SIZE 26; };
LABEL { ADDR $FE0F; NAME "UNKNOWN_FE0F"; SIZE 4; };
LABEL { ADDR $FE13; NAME "FADE_TABLE_LOW"; SIZE 2; COMMENT "Points to FADE_PATTERN_0 / 1 below. (LINK)"; };
LABEL { ADDR $FE15; NAME "FADE_TABLE_HIGH"; SIZE 2; };
LABEL { ADDR $FE17; NAME "FADE_PATTERN_0"; SIZE 11; };
LABEL { ADDR $FE22; NAME "FADE_PATTERN_1"; SIZE 20; };
LABEL { ADDR $FE36; NAME "DMC_FADE"; SIZE 16; };
LABEL { ADDR $FE46; NAME "PADDING_FE46"; SIZE 170; };
LABEL { ADDR $FEF0; NAME "UNKNOWN_FEF0"; SIZE 73; };
LABEL { ADDR $FF39; NAME "PADDING_FF39"; SIZE 103; };
LABEL { ADDR $FFA0; NAME "UNKNOWN_FFA0"; SIZE 29; };
LABEL { ADDR $FFBD; NAME "PADDING_FFBD"; SIZE 34; };
LABEL { ADDR $FFE0; NAME "DELETED_FFE0"; SIZE 32; COMMENT "32 bytes deleted to make room for NSF stub"; };

# channels:
# 0 square 1
# 1 square 2
# 2 square 2 SFX
# 3 noise
# 4 noise SFX
# 5 triangle

# ram labels
LABEL { ADDR $00A0; NAME "var_next_track"; };
LABEL { ADDR $00A1; NAME "var_current_track"; };
LABEL { ADDR $00A2; NAME "var_extra_A2"; COMMENT "not used by NSF"; };
LABEL { ADDR $00A3; NAME "var_extra_A3"; COMMENT "not used by NSF"; };
LABEL { ADDR $00A4; NAME "var_extra_A4"; COMMENT "not used by NSF"; };
LABEL { ADDR $00A5; NAME "var_extra_A5"; COMMENT "not used by NSF"; };
LABEL { ADDR $00A6; NAME "var_ptr_extra_table_low";  SIZE 2; COMMENT "not used by NSF"; };
LABEL { ADDR $00A8; NAME "var_ptr_extra_table_high"; SIZE 2; COMMENT "not used by NSF"; };
LABEL { ADDR $00AA; NAME "var_ptr_fade"; SIZE 2; };
LABEL { ADDR $00AC; NAME "var_ptr_pattern"; SIZE 2; COMMENT "current pattern during reading"; };
LABEL { ADDR $00F0; NAME "var_temp_F0"; SIZE 2; }; # temp note (high nibble = octave), temp track ptr
LABEL { ADDR $00F2; NAME "var_temp_F2"; };
LABEL { ADDR $00F3; NAME "var_temp_F3"; };
LABEL { ADDR $00F4; NAME "var_temp_F4"; };
LABEL { ADDR $00F5; NAME "var_temp_F5"; };
LABEL { ADDR $00F6; NAME "var_temp_F6"; };
LABEL { ADDR $00F7; NAME "var_temp_pattern_pos"; };


LABEL { ADDR $7160; NAME "var_channel_mask";                  COMMENT "stores state of $4015"; };
LABEL { ADDR $7161; NAME "var_ch_freq_high";          SIZE 4; COMMENT "stores state of $4003+ch"; };
LABEL { ADDR $7166; NAME "var_play_fade_speed";               COMMENT "0 = fast, 1 = slow"; };
LABEL { ADDR $7168; NAME "var_play_fade";                     };
LABEL { ADDR $7169; NAME "var_play_fade_pos";                 };
LABEL { ADDR $716A; NAME "var_current_channel";               COMMENT "the channel currently updating"; };
LABEL { ADDR $716B; NAME "var_extra_ch_2";                    COMMENT "not used by NSF"; };
LABEL { ADDR $716C; NAME "var_dmc_counter";                   COMMENT "stores state of $4011"; };
LABEL { ADDR $716D; NAME "var_extra_ch_4";                    COMMENT "not used by NSF"; };
LABEL { ADDR $7170; NAME "var_ch_halt";               SIZE 6; COMMENT "$FF to halt channel"; };
LABEL { ADDR $7176; NAME "var_ch_pattern_ptr_low";    SIZE 6; };
LABEL { ADDR $717C; NAME "var_ch_pattern_ptr_high";   SIZE 6; };
LABEL { ADDR $7182; NAME "var_ch_pattern_pos";        SIZE 6; };
LABEL { ADDR $7188; NAME "var_ch_update_speed";       SIZE 6; };
LABEL { ADDR $718E; NAME "var_ch_update_timer";       SIZE 6; };
LABEL { ADDR $7194; NAME "var_ch_volume";             SIZE 6; COMMENT "volume/duty/lc/env state"; };
LABEL { ADDR $719A; NAME "var_ch_note_len";           SIZE 6; };
LABEL { ADDR $71A0; NAME "var_ch_sweep";              SIZE 6; COMMENT "hardware sweep state"; };
LABEL { ADDR $71A6; NAME "var_ch_slide";              SIZE 6; COMMENT "software pitch slide"; };
LABEL { ADDR $71AC; NAME "var_ch_repeat";             SIZE 6; COMMENT "repeat counter for BX command"; };
LABEL { ADDR $71B2; NAME "var_ch_envelope_select";    SIZE 6; COMMENT "0 = no envelope, 1-16 selects 8-entry envelope from ENVELOPE_TABLE"; };
LABEL { ADDR $71B8; NAME "var_ch_envelope_len";       SIZE 5; COMMENT "length of envelope * 16"; };
LABEL { ADDR $71BD; NAME "var_dmc_target";                    COMMENT "DMC slides to this -4/+4 per frame"; };
LABEL { ADDR $71BE; NAME "var_ch_envelope_pos";       SIZE 6; COMMENT "position in envelope"; };
LABEL { ADDR $71C4; NAME "var_ch_volume_slide";       SIZE 6; };
LABEL { ADDR $71CA; NAME "var_ch_volume_slide_speed"; SIZE 6; COMMENT "frames per volume slide"; };
LABEL { ADDR $71D0; NAME "var_ch_volume_slide_timer"; SIZE 6; COMMENT "countdown from speed until volume slide"; };
LABEL { ADDR $71D6; NAME "var_ch_repeat_point";       SIZE 6; COMMENT "repeat point set by FC command"; };
LABEL { ADDR $71DC; NAME "var_ch_repeat_point_count"; SIZE 6; COMMENT "repeat counter for FC/FB commands"; };
LABEL { ADDR $71E2; NAME "var_ch_octave";             SIZE 6; };
LABEL { ADDR $71E8; NAME "var_ch_pitch_low";          SIZE 6; };
LABEL { ADDR $71EE; NAME "var_ch_pitch_high";         SIZE 6; };
LABEL { ADDR $71F4; NAME "var_ch_detune";             SIZE 6; COMMENT "set by F8 command"; };


# note: check out FC10-FC20 and FC2C-FC5B
# they are both read as code + data?

# music data locations, generated by orders.py

LABEL { ADDR $0008; NAME "TRACK_00_ORDER"; };
LABEL { ADDR $A048; NAME "TRACK_01_ORDER"; };
LABEL { ADDR $A378; NAME "TRACK_02_ORDER"; };
LABEL { ADDR $A49B; NAME "TRACK_03_ORDER"; };
LABEL { ADDR $A5E4; NAME "TRACK_04_ORDER"; };
LABEL { ADDR $A7AF; NAME "TRACK_05_ORDER"; };
LABEL { ADDR $A9F8; NAME "TRACK_06_ORDER"; };
LABEL { ADDR $AA8B; NAME "TRACK_07_ORDER"; };
LABEL { ADDR $AB5C; NAME "TRACK_08_ORDER"; };
LABEL { ADDR $AC79; NAME "TRACK_09_ORDER"; };
LABEL { ADDR $AD24; NAME "TRACK_0A_ORDER"; };
LABEL { ADDR $ADE9; NAME "TRACK_0B_ORDER"; };
LABEL { ADDR $B020; NAME "TRACK_0C_ORDER"; };
LABEL { ADDR $B1BB; NAME "TRACK_0D_ORDER"; };
LABEL { ADDR $B222; NAME "TRACK_0E_ORDER"; };
LABEL { ADDR $B399; NAME "TRACK_0F_ORDER"; };
LABEL { ADDR $B41E; NAME "TRACK_10_ORDER"; };
LABEL { ADDR $B541; NAME "TRACK_11_ORDER"; };
LABEL { ADDR $B738; NAME "TRACK_12_ORDER"; };
LABEL { ADDR $B86D; NAME "TRACK_13_ORDER"; };
LABEL { ADDR $B901; NAME "TRACK_14_ORDER"; };
LABEL { ADDR $B9FA; NAME "TRACK_15_ORDER"; };
LABEL { ADDR $BB39; NAME "TRACK_16_ORDER"; };
LABEL { ADDR $BC3E; NAME "TRACK_17_ORDER"; };
LABEL { ADDR $BCB4; NAME "TRACK_18_ORDER"; };
LABEL { ADDR $BEE5; NAME "TRACK_19_ORDER"; };
LABEL { ADDR $C002; NAME "TRACK_1A_ORDER"; };
LABEL { ADDR $C1F5; NAME "TRACK_1B_ORDER"; };
LABEL { ADDR $C2C6; NAME "TRACK_1C_ORDER"; };
LABEL { ADDR $C3ED; NAME "TRACK_1D_ORDER"; };
LABEL { ADDR $C4C6; NAME "TRACK_1E_ORDER"; };
LABEL { ADDR $C606; NAME "TRACK_1F_ORDER"; };
LABEL { ADDR $C7F1; NAME "TRACK_20_ORDER"; };
LABEL { ADDR $C992; NAME "TRACK_21_ORDER"; };
LABEL { ADDR $C9B0; NAME "TRACK_22_ORDER"; };
LABEL { ADDR $C9DF; NAME "TRACK_23_ORDER"; };
LABEL { ADDR $A055; NAME "TRACK_01_CH0_PATTERN"; };
LABEL { ADDR $A10E; NAME "TRACK_01_CH1_PATTERN"; };
LABEL { ADDR $A298; NAME "TRACK_01_CH5_PATTERN"; };
LABEL { ADDR $A361; NAME "TRACK_01_CH3_PATTERN"; };
LABEL { ADDR $A385; NAME "TRACK_02_CH0_PATTERN"; };
LABEL { ADDR $A3D6; NAME "TRACK_02_CH1_PATTERN"; };
LABEL { ADDR $A427; NAME "TRACK_02_CH5_PATTERN"; };
LABEL { ADDR $A460; NAME "TRACK_02_CH3_PATTERN"; };
LABEL { ADDR $A4A8; NAME "TRACK_03_CH0_PATTERN"; };
LABEL { ADDR $A503; NAME "TRACK_03_CH1_PATTERN"; };
LABEL { ADDR $A592; NAME "TRACK_03_CH5_PATTERN"; };
LABEL { ADDR $A5D1; NAME "TRACK_03_CH3_PATTERN"; };
LABEL { ADDR $A5F1; NAME "TRACK_04_CH0_PATTERN"; };
LABEL { ADDR $A6AA; NAME "TRACK_04_CH1_PATTERN"; };
LABEL { ADDR $A737; NAME "TRACK_04_CH5_PATTERN"; };
LABEL { ADDR $A79C; NAME "TRACK_04_CH3_PATTERN"; };
LABEL { ADDR $A7BC; NAME "TRACK_05_CH0_PATTERN"; };
LABEL { ADDR $A87B; NAME "TRACK_05_CH1_PATTERN"; };
LABEL { ADDR $A93A; NAME "TRACK_05_CH5_PATTERN"; };
LABEL { ADDR $A9A1; NAME "TRACK_05_CH3_PATTERN"; };
LABEL { ADDR $AA02; NAME "TRACK_06_CH0_PATTERN"; };
LABEL { ADDR $AA27; NAME "TRACK_06_CH1_PATTERN"; };
LABEL { ADDR $AA50; NAME "TRACK_06_CH5_PATTERN"; };
LABEL { ADDR $AA98; NAME "TRACK_07_CH0_PATTERN"; };
LABEL { ADDR $AAE9; NAME "TRACK_07_CH1_PATTERN"; };
LABEL { ADDR $AB3A; NAME "TRACK_07_CH5_PATTERN"; };
LABEL { ADDR $AB4B; NAME "TRACK_07_CH3_PATTERN"; };
LABEL { ADDR $AB66; NAME "TRACK_08_CH0_PATTERN"; };
LABEL { ADDR $ABCF; NAME "TRACK_08_CH1_PATTERN"; };
LABEL { ADDR $AC3A; NAME "TRACK_08_CH5_PATTERN"; };
LABEL { ADDR $AC86; NAME "TRACK_09_CH0_PATTERN"; };
LABEL { ADDR $ACB9; NAME "TRACK_09_CH1_PATTERN"; };
LABEL { ADDR $ACEC; NAME "TRACK_09_CH5_PATTERN"; };
LABEL { ADDR $AD09; NAME "TRACK_09_CH3_PATTERN"; };
LABEL { ADDR $AD31; NAME "TRACK_0A_CH0_PATTERN"; };
LABEL { ADDR $AD7A; NAME "TRACK_0A_CH1_PATTERN"; };
LABEL { ADDR $ADC3; NAME "TRACK_0A_CH5_PATTERN"; };
LABEL { ADDR $ADDC; NAME "TRACK_0A_CH3_PATTERN"; };
LABEL { ADDR $ADF6; NAME "TRACK_0B_CH0_PATTERN"; };
LABEL { ADDR $AEA5; NAME "TRACK_0B_CH1_PATTERN"; };
LABEL { ADDR $AF54; NAME "TRACK_0B_CH5_PATTERN"; };
LABEL { ADDR $AFE5; NAME "TRACK_0B_CH3_PATTERN"; };
LABEL { ADDR $B02D; NAME "TRACK_0C_CH0_PATTERN"; };
LABEL { ADDR $B0A4; NAME "TRACK_0C_CH1_PATTERN"; };
LABEL { ADDR $B11B; NAME "TRACK_0C_CH5_PATTERN"; };
LABEL { ADDR $B1A8; NAME "TRACK_0C_CH3_PATTERN"; };
LABEL { ADDR $B1C5; NAME "TRACK_0D_CH0_PATTERN"; };
LABEL { ADDR $B1E2; NAME "TRACK_0D_CH1_PATTERN"; };
LABEL { ADDR $B1FF; NAME "TRACK_0D_CH5_PATTERN"; };
LABEL { ADDR $B22C; NAME "TRACK_0E_CH0_PATTERN"; };
LABEL { ADDR $B2AD; NAME "TRACK_0E_CH1_PATTERN"; };
LABEL { ADDR $B330; NAME "TRACK_0E_CH5_PATTERN"; };
LABEL { ADDR $B3A3; NAME "TRACK_0F_CH0_PATTERN"; };
LABEL { ADDR $B3D2; NAME "TRACK_0F_CH1_PATTERN"; };
LABEL { ADDR $B401; NAME "TRACK_0F_CH5_PATTERN"; };
LABEL { ADDR $B42B; NAME "TRACK_10_CH0_PATTERN"; };
LABEL { ADDR $B48C; NAME "TRACK_10_CH1_PATTERN"; };
LABEL { ADDR $B4ED; NAME "TRACK_10_CH5_PATTERN"; };
LABEL { ADDR $B528; NAME "TRACK_10_CH3_PATTERN"; };
LABEL { ADDR $B54E; NAME "TRACK_11_CH0_PATTERN"; };
LABEL { ADDR $B5FB; NAME "TRACK_11_CH1_PATTERN"; };
LABEL { ADDR $B6A8; NAME "TRACK_11_CH5_PATTERN"; };
LABEL { ADDR $B725; NAME "TRACK_11_CH3_PATTERN"; };
LABEL { ADDR $B745; NAME "TRACK_12_CH0_PATTERN"; };
LABEL { ADDR $B7A0; NAME "TRACK_12_CH1_PATTERN"; };
LABEL { ADDR $B7FB; NAME "TRACK_12_CH5_PATTERN"; };
LABEL { ADDR $B846; NAME "TRACK_12_CH3_PATTERN"; };
LABEL { ADDR $B87A; NAME "TRACK_13_CH0_PATTERN"; };
LABEL { ADDR $B8A0; NAME "TRACK_13_CH1_PATTERN"; };
LABEL { ADDR $B8C3; NAME "TRACK_13_CH5_PATTERN"; };
LABEL { ADDR $B8E6; NAME "TRACK_13_CH3_PATTERN"; };
LABEL { ADDR $B90B; NAME "TRACK_14_CH0_PATTERN"; };
LABEL { ADDR $B952; NAME "TRACK_14_CH1_PATTERN"; };
LABEL { ADDR $B99B; NAME "TRACK_14_CH5_PATTERN"; };
LABEL { ADDR $BA07; NAME "TRACK_15_CH0_PATTERN"; };
LABEL { ADDR $BA60; NAME "TRACK_15_CH1_PATTERN"; };
LABEL { ADDR $BAB9; NAME "TRACK_15_CH5_PATTERN"; };
LABEL { ADDR $BB24; NAME "TRACK_15_CH3_PATTERN"; };
LABEL { ADDR $BB46; NAME "TRACK_16_CH0_PATTERN"; };
LABEL { ADDR $BBA9; NAME "TRACK_16_CH1_PATTERN"; };
LABEL { ADDR $BC0C; NAME "TRACK_16_CH5_PATTERN"; };
LABEL { ADDR $BC25; NAME "TRACK_16_CH3_PATTERN"; };
LABEL { ADDR $BC48; NAME "TRACK_17_CH0_PATTERN"; };
LABEL { ADDR $BC6E; NAME "TRACK_17_CH1_PATTERN"; };
LABEL { ADDR $BC91; NAME "TRACK_17_CH5_PATTERN"; };
LABEL { ADDR $BCC1; NAME "TRACK_18_CH0_PATTERN"; };
LABEL { ADDR $BD5C; NAME "TRACK_18_CH1_PATTERN"; };
LABEL { ADDR $BDF9; NAME "TRACK_18_CH5_PATTERN"; };
LABEL { ADDR $BE94; NAME "TRACK_18_CH3_PATTERN"; };
LABEL { ADDR $BEF2; NAME "TRACK_19_CH0_PATTERN"; };
LABEL { ADDR $BF3B; NAME "TRACK_19_CH1_PATTERN"; };
LABEL { ADDR $BF86; NAME "TRACK_19_CH5_PATTERN"; };
LABEL { ADDR $BFD5; NAME "TRACK_19_CH3_PATTERN"; };
LABEL { ADDR $C00C; NAME "TRACK_1A_CH0_PATTERN"; };
LABEL { ADDR $C0E3; NAME "TRACK_1A_CH1_PATTERN"; };
LABEL { ADDR $C160; NAME "TRACK_1A_CH5_PATTERN"; };
LABEL { ADDR $C202; NAME "TRACK_1B_CH0_PATTERN"; };
LABEL { ADDR $C247; NAME "TRACK_1B_CH1_PATTERN"; };
LABEL { ADDR $C28E; NAME "TRACK_1B_CH5_PATTERN"; };
LABEL { ADDR $C2B1; NAME "TRACK_1B_CH3_PATTERN"; };
LABEL { ADDR $C2D3; NAME "TRACK_1C_CH0_PATTERN"; };
LABEL { ADDR $C328; NAME "TRACK_1C_CH1_PATTERN"; };
LABEL { ADDR $C37F; NAME "TRACK_1C_CH5_PATTERN"; };
LABEL { ADDR $C3DA; NAME "TRACK_1C_CH3_PATTERN"; };
LABEL { ADDR $C3FA; NAME "TRACK_1D_CH0_PATTERN"; };
LABEL { ADDR $C441; NAME "TRACK_1D_CH1_PATTERN"; };
LABEL { ADDR $C48A; NAME "TRACK_1D_CH5_PATTERN"; };
LABEL { ADDR $C4A3; NAME "TRACK_1D_CH3_PATTERN"; };
LABEL { ADDR $C4D0; NAME "TRACK_1E_CH0_PATTERN"; };
LABEL { ADDR $C529; NAME "TRACK_1E_CH1_PATTERN"; };
LABEL { ADDR $C5B0; NAME "TRACK_1E_CH5_PATTERN"; };
LABEL { ADDR $C613; NAME "TRACK_1F_CH0_PATTERN"; };
LABEL { ADDR $C6A8; NAME "TRACK_1F_CH1_PATTERN"; };
LABEL { ADDR $C743; NAME "TRACK_1F_CH5_PATTERN"; };
LABEL { ADDR $C7DE; NAME "TRACK_1F_CH3_PATTERN"; };
LABEL { ADDR $C7FE; NAME "TRACK_20_CH0_PATTERN"; };
LABEL { ADDR $C885; NAME "TRACK_20_CH1_PATTERN"; };
LABEL { ADDR $C90E; NAME "TRACK_20_CH5_PATTERN"; };
LABEL { ADDR $C977; NAME "TRACK_20_CH3_PATTERN"; };
LABEL { ADDR $C996; NAME "TRACK_21_CH3_PATTERN"; };
LABEL { ADDR $C9B7; NAME "TRACK_22_CH1_PATTERN"; };
LABEL { ADDR $C9CD; NAME "TRACK_22_CH3_PATTERN"; };
LABEL { ADDR $C9E6; NAME "TRACK_23_CH1_PATTERN"; };
LABEL { ADDR $C9F8; NAME "TRACK_23_CH3_PATTERN"; };
RANGE { START $A048; END $A048; TYPE ByteTable; };
RANGE { START $A049; END $A049; TYPE ByteTable; };
RANGE { START $A04A; END $A04B; TYPE AddrTable; };
RANGE { START $A04C; END $A04C; TYPE ByteTable; };
RANGE { START $A04D; END $A04E; TYPE AddrTable; };
RANGE { START $A04F; END $A04F; TYPE ByteTable; };
RANGE { START $A050; END $A051; TYPE AddrTable; };
RANGE { START $A052; END $A052; TYPE ByteTable; };
RANGE { START $A053; END $A054; TYPE AddrTable; };
RANGE { START $A055; END $A377; TYPE ByteTable; };
RANGE { START $A378; END $A378; TYPE ByteTable; };
RANGE { START $A379; END $A379; TYPE ByteTable; };
RANGE { START $A37A; END $A37B; TYPE AddrTable; };
RANGE { START $A37C; END $A37C; TYPE ByteTable; };
RANGE { START $A37D; END $A37E; TYPE AddrTable; };
RANGE { START $A37F; END $A37F; TYPE ByteTable; };
RANGE { START $A380; END $A381; TYPE AddrTable; };
RANGE { START $A382; END $A382; TYPE ByteTable; };
RANGE { START $A383; END $A384; TYPE AddrTable; };
RANGE { START $A385; END $A49A; TYPE ByteTable; };
RANGE { START $A49B; END $A49B; TYPE ByteTable; };
RANGE { START $A49C; END $A49C; TYPE ByteTable; };
RANGE { START $A49D; END $A49E; TYPE AddrTable; };
RANGE { START $A49F; END $A49F; TYPE ByteTable; };
RANGE { START $A4A0; END $A4A1; TYPE AddrTable; };
RANGE { START $A4A2; END $A4A2; TYPE ByteTable; };
RANGE { START $A4A3; END $A4A4; TYPE AddrTable; };
RANGE { START $A4A5; END $A4A5; TYPE ByteTable; };
RANGE { START $A4A6; END $A4A7; TYPE AddrTable; };
RANGE { START $A4A8; END $A5E3; TYPE ByteTable; };
RANGE { START $A5E4; END $A5E4; TYPE ByteTable; };
RANGE { START $A5E5; END $A5E5; TYPE ByteTable; };
RANGE { START $A5E6; END $A5E7; TYPE AddrTable; };
RANGE { START $A5E8; END $A5E8; TYPE ByteTable; };
RANGE { START $A5E9; END $A5EA; TYPE AddrTable; };
RANGE { START $A5EB; END $A5EB; TYPE ByteTable; };
RANGE { START $A5EC; END $A5ED; TYPE AddrTable; };
RANGE { START $A5EE; END $A5EE; TYPE ByteTable; };
RANGE { START $A5EF; END $A5F0; TYPE AddrTable; };
RANGE { START $A5F1; END $A7AE; TYPE ByteTable; };
RANGE { START $A7AF; END $A7AF; TYPE ByteTable; };
RANGE { START $A7B0; END $A7B0; TYPE ByteTable; };
RANGE { START $A7B1; END $A7B2; TYPE AddrTable; };
RANGE { START $A7B3; END $A7B3; TYPE ByteTable; };
RANGE { START $A7B4; END $A7B5; TYPE AddrTable; };
RANGE { START $A7B6; END $A7B6; TYPE ByteTable; };
RANGE { START $A7B7; END $A7B8; TYPE AddrTable; };
RANGE { START $A7B9; END $A7B9; TYPE ByteTable; };
RANGE { START $A7BA; END $A7BB; TYPE AddrTable; };
RANGE { START $A7BC; END $A9F7; TYPE ByteTable; };
RANGE { START $A9F8; END $A9F8; TYPE ByteTable; };
RANGE { START $A9F9; END $A9F9; TYPE ByteTable; };
RANGE { START $A9FA; END $A9FB; TYPE AddrTable; };
RANGE { START $A9FC; END $A9FC; TYPE ByteTable; };
RANGE { START $A9FD; END $A9FE; TYPE AddrTable; };
RANGE { START $A9FF; END $A9FF; TYPE ByteTable; };
RANGE { START $AA00; END $AA01; TYPE AddrTable; };
RANGE { START $AA02; END $AA8A; TYPE ByteTable; };
RANGE { START $AA8B; END $AA8B; TYPE ByteTable; };
RANGE { START $AA8C; END $AA8C; TYPE ByteTable; };
RANGE { START $AA8D; END $AA8E; TYPE AddrTable; };
RANGE { START $AA8F; END $AA8F; TYPE ByteTable; };
RANGE { START $AA90; END $AA91; TYPE AddrTable; };
RANGE { START $AA92; END $AA92; TYPE ByteTable; };
RANGE { START $AA93; END $AA94; TYPE AddrTable; };
RANGE { START $AA95; END $AA95; TYPE ByteTable; };
RANGE { START $AA96; END $AA97; TYPE AddrTable; };
RANGE { START $AA98; END $AB5B; TYPE ByteTable; };
RANGE { START $AB5C; END $AB5C; TYPE ByteTable; };
RANGE { START $AB5D; END $AB5D; TYPE ByteTable; };
RANGE { START $AB5E; END $AB5F; TYPE AddrTable; };
RANGE { START $AB60; END $AB60; TYPE ByteTable; };
RANGE { START $AB61; END $AB62; TYPE AddrTable; };
RANGE { START $AB63; END $AB63; TYPE ByteTable; };
RANGE { START $AB64; END $AB65; TYPE AddrTable; };
RANGE { START $AB66; END $AC78; TYPE ByteTable; };
RANGE { START $AC79; END $AC79; TYPE ByteTable; };
RANGE { START $AC7A; END $AC7A; TYPE ByteTable; };
RANGE { START $AC7B; END $AC7C; TYPE AddrTable; };
RANGE { START $AC7D; END $AC7D; TYPE ByteTable; };
RANGE { START $AC7E; END $AC7F; TYPE AddrTable; };
RANGE { START $AC80; END $AC80; TYPE ByteTable; };
RANGE { START $AC81; END $AC82; TYPE AddrTable; };
RANGE { START $AC83; END $AC83; TYPE ByteTable; };
RANGE { START $AC84; END $AC85; TYPE AddrTable; };
RANGE { START $AC86; END $AD23; TYPE ByteTable; };
RANGE { START $AD24; END $AD24; TYPE ByteTable; };
RANGE { START $AD25; END $AD25; TYPE ByteTable; };
RANGE { START $AD26; END $AD27; TYPE AddrTable; };
RANGE { START $AD28; END $AD28; TYPE ByteTable; };
RANGE { START $AD29; END $AD2A; TYPE AddrTable; };
RANGE { START $AD2B; END $AD2B; TYPE ByteTable; };
RANGE { START $AD2C; END $AD2D; TYPE AddrTable; };
RANGE { START $AD2E; END $AD2E; TYPE ByteTable; };
RANGE { START $AD2F; END $AD30; TYPE AddrTable; };
RANGE { START $AD31; END $ADE8; TYPE ByteTable; };
RANGE { START $ADE9; END $ADE9; TYPE ByteTable; };
RANGE { START $ADEA; END $ADEA; TYPE ByteTable; };
RANGE { START $ADEB; END $ADEC; TYPE AddrTable; };
RANGE { START $ADED; END $ADED; TYPE ByteTable; };
RANGE { START $ADEE; END $ADEF; TYPE AddrTable; };
RANGE { START $ADF0; END $ADF0; TYPE ByteTable; };
RANGE { START $ADF1; END $ADF2; TYPE AddrTable; };
RANGE { START $ADF3; END $ADF3; TYPE ByteTable; };
RANGE { START $ADF4; END $ADF5; TYPE AddrTable; };
RANGE { START $ADF6; END $B01F; TYPE ByteTable; };
RANGE { START $B020; END $B020; TYPE ByteTable; };
RANGE { START $B021; END $B021; TYPE ByteTable; };
RANGE { START $B022; END $B023; TYPE AddrTable; };
RANGE { START $B024; END $B024; TYPE ByteTable; };
RANGE { START $B025; END $B026; TYPE AddrTable; };
RANGE { START $B027; END $B027; TYPE ByteTable; };
RANGE { START $B028; END $B029; TYPE AddrTable; };
RANGE { START $B02A; END $B02A; TYPE ByteTable; };
RANGE { START $B02B; END $B02C; TYPE AddrTable; };
RANGE { START $B02D; END $B1BA; TYPE ByteTable; };
RANGE { START $B1BB; END $B1BB; TYPE ByteTable; };
RANGE { START $B1BC; END $B1BC; TYPE ByteTable; };
RANGE { START $B1BD; END $B1BE; TYPE AddrTable; };
RANGE { START $B1BF; END $B1BF; TYPE ByteTable; };
RANGE { START $B1C0; END $B1C1; TYPE AddrTable; };
RANGE { START $B1C2; END $B1C2; TYPE ByteTable; };
RANGE { START $B1C3; END $B1C4; TYPE AddrTable; };
RANGE { START $B1C5; END $B221; TYPE ByteTable; };
RANGE { START $B222; END $B222; TYPE ByteTable; };
RANGE { START $B223; END $B223; TYPE ByteTable; };
RANGE { START $B224; END $B225; TYPE AddrTable; };
RANGE { START $B226; END $B226; TYPE ByteTable; };
RANGE { START $B227; END $B228; TYPE AddrTable; };
RANGE { START $B229; END $B229; TYPE ByteTable; };
RANGE { START $B22A; END $B22B; TYPE AddrTable; };
RANGE { START $B22C; END $B398; TYPE ByteTable; };
RANGE { START $B399; END $B399; TYPE ByteTable; };
RANGE { START $B39A; END $B39A; TYPE ByteTable; };
RANGE { START $B39B; END $B39C; TYPE AddrTable; };
RANGE { START $B39D; END $B39D; TYPE ByteTable; };
RANGE { START $B39E; END $B39F; TYPE AddrTable; };
RANGE { START $B3A0; END $B3A0; TYPE ByteTable; };
RANGE { START $B3A1; END $B3A2; TYPE AddrTable; };
RANGE { START $B3A3; END $B41D; TYPE ByteTable; };
RANGE { START $B41E; END $B41E; TYPE ByteTable; };
RANGE { START $B41F; END $B41F; TYPE ByteTable; };
RANGE { START $B420; END $B421; TYPE AddrTable; };
RANGE { START $B422; END $B422; TYPE ByteTable; };
RANGE { START $B423; END $B424; TYPE AddrTable; };
RANGE { START $B425; END $B425; TYPE ByteTable; };
RANGE { START $B426; END $B427; TYPE AddrTable; };
RANGE { START $B428; END $B428; TYPE ByteTable; };
RANGE { START $B429; END $B42A; TYPE AddrTable; };
RANGE { START $B42B; END $B540; TYPE ByteTable; };
RANGE { START $B541; END $B541; TYPE ByteTable; };
RANGE { START $B542; END $B542; TYPE ByteTable; };
RANGE { START $B543; END $B544; TYPE AddrTable; };
RANGE { START $B545; END $B545; TYPE ByteTable; };
RANGE { START $B546; END $B547; TYPE AddrTable; };
RANGE { START $B548; END $B548; TYPE ByteTable; };
RANGE { START $B549; END $B54A; TYPE AddrTable; };
RANGE { START $B54B; END $B54B; TYPE ByteTable; };
RANGE { START $B54C; END $B54D; TYPE AddrTable; };
RANGE { START $B54E; END $B737; TYPE ByteTable; };
RANGE { START $B738; END $B738; TYPE ByteTable; };
RANGE { START $B739; END $B739; TYPE ByteTable; };
RANGE { START $B73A; END $B73B; TYPE AddrTable; };
RANGE { START $B73C; END $B73C; TYPE ByteTable; };
RANGE { START $B73D; END $B73E; TYPE AddrTable; };
RANGE { START $B73F; END $B73F; TYPE ByteTable; };
RANGE { START $B740; END $B741; TYPE AddrTable; };
RANGE { START $B742; END $B742; TYPE ByteTable; };
RANGE { START $B743; END $B744; TYPE AddrTable; };
RANGE { START $B745; END $B86C; TYPE ByteTable; };
RANGE { START $B86D; END $B86D; TYPE ByteTable; };
RANGE { START $B86E; END $B86E; TYPE ByteTable; };
RANGE { START $B86F; END $B870; TYPE AddrTable; };
RANGE { START $B871; END $B871; TYPE ByteTable; };
RANGE { START $B872; END $B873; TYPE AddrTable; };
RANGE { START $B874; END $B874; TYPE ByteTable; };
RANGE { START $B875; END $B876; TYPE AddrTable; };
RANGE { START $B877; END $B877; TYPE ByteTable; };
RANGE { START $B878; END $B879; TYPE AddrTable; };
RANGE { START $B87A; END $B900; TYPE ByteTable; };
RANGE { START $B901; END $B901; TYPE ByteTable; };
RANGE { START $B902; END $B902; TYPE ByteTable; };
RANGE { START $B903; END $B904; TYPE AddrTable; };
RANGE { START $B905; END $B905; TYPE ByteTable; };
RANGE { START $B906; END $B907; TYPE AddrTable; };
RANGE { START $B908; END $B908; TYPE ByteTable; };
RANGE { START $B909; END $B90A; TYPE AddrTable; };
RANGE { START $B90B; END $B9F9; TYPE ByteTable; };
RANGE { START $B9FA; END $B9FA; TYPE ByteTable; };
RANGE { START $B9FB; END $B9FB; TYPE ByteTable; };
RANGE { START $B9FC; END $B9FD; TYPE AddrTable; };
RANGE { START $B9FE; END $B9FE; TYPE ByteTable; };
RANGE { START $B9FF; END $BA00; TYPE AddrTable; };
RANGE { START $BA01; END $BA01; TYPE ByteTable; };
RANGE { START $BA02; END $BA03; TYPE AddrTable; };
RANGE { START $BA04; END $BA04; TYPE ByteTable; };
RANGE { START $BA05; END $BA06; TYPE AddrTable; };
RANGE { START $BA07; END $BB38; TYPE ByteTable; };
RANGE { START $BB39; END $BB39; TYPE ByteTable; };
RANGE { START $BB3A; END $BB3A; TYPE ByteTable; };
RANGE { START $BB3B; END $BB3C; TYPE AddrTable; };
RANGE { START $BB3D; END $BB3D; TYPE ByteTable; };
RANGE { START $BB3E; END $BB3F; TYPE AddrTable; };
RANGE { START $BB40; END $BB40; TYPE ByteTable; };
RANGE { START $BB41; END $BB42; TYPE AddrTable; };
RANGE { START $BB43; END $BB43; TYPE ByteTable; };
RANGE { START $BB44; END $BB45; TYPE AddrTable; };
RANGE { START $BB46; END $BC3D; TYPE ByteTable; };
RANGE { START $BC3E; END $BC3E; TYPE ByteTable; };
RANGE { START $BC3F; END $BC3F; TYPE ByteTable; };
RANGE { START $BC40; END $BC41; TYPE AddrTable; };
RANGE { START $BC42; END $BC42; TYPE ByteTable; };
RANGE { START $BC43; END $BC44; TYPE AddrTable; };
RANGE { START $BC45; END $BC45; TYPE ByteTable; };
RANGE { START $BC46; END $BC47; TYPE AddrTable; };
RANGE { START $BC48; END $BCB3; TYPE ByteTable; };
RANGE { START $BCB4; END $BCB4; TYPE ByteTable; };
RANGE { START $BCB5; END $BCB5; TYPE ByteTable; };
RANGE { START $BCB6; END $BCB7; TYPE AddrTable; };
RANGE { START $BCB8; END $BCB8; TYPE ByteTable; };
RANGE { START $BCB9; END $BCBA; TYPE AddrTable; };
RANGE { START $BCBB; END $BCBB; TYPE ByteTable; };
RANGE { START $BCBC; END $BCBD; TYPE AddrTable; };
RANGE { START $BCBE; END $BCBE; TYPE ByteTable; };
RANGE { START $BCBF; END $BCC0; TYPE AddrTable; };
RANGE { START $BCC1; END $BEE4; TYPE ByteTable; };
RANGE { START $BEE5; END $BEE5; TYPE ByteTable; };
RANGE { START $BEE6; END $BEE6; TYPE ByteTable; };
RANGE { START $BEE7; END $BEE8; TYPE AddrTable; };
RANGE { START $BEE9; END $BEE9; TYPE ByteTable; };
RANGE { START $BEEA; END $BEEB; TYPE AddrTable; };
RANGE { START $BEEC; END $BEEC; TYPE ByteTable; };
RANGE { START $BEED; END $BEEE; TYPE AddrTable; };
RANGE { START $BEEF; END $BEEF; TYPE ByteTable; };
RANGE { START $BEF0; END $BEF1; TYPE AddrTable; };
RANGE { START $BEF2; END $C001; TYPE ByteTable; };
RANGE { START $C002; END $C002; TYPE ByteTable; };
RANGE { START $C003; END $C003; TYPE ByteTable; };
RANGE { START $C004; END $C005; TYPE AddrTable; };
RANGE { START $C006; END $C006; TYPE ByteTable; };
RANGE { START $C007; END $C008; TYPE AddrTable; };
RANGE { START $C009; END $C009; TYPE ByteTable; };
RANGE { START $C00A; END $C00B; TYPE AddrTable; };
RANGE { START $C00C; END $C1F4; TYPE ByteTable; };
RANGE { START $C1F5; END $C1F5; TYPE ByteTable; };
RANGE { START $C1F6; END $C1F6; TYPE ByteTable; };
RANGE { START $C1F7; END $C1F8; TYPE AddrTable; };
RANGE { START $C1F9; END $C1F9; TYPE ByteTable; };
RANGE { START $C1FA; END $C1FB; TYPE AddrTable; };
RANGE { START $C1FC; END $C1FC; TYPE ByteTable; };
RANGE { START $C1FD; END $C1FE; TYPE AddrTable; };
RANGE { START $C1FF; END $C1FF; TYPE ByteTable; };
RANGE { START $C200; END $C201; TYPE AddrTable; };
RANGE { START $C202; END $C2C5; TYPE ByteTable; };
RANGE { START $C2C6; END $C2C6; TYPE ByteTable; };
RANGE { START $C2C7; END $C2C7; TYPE ByteTable; };
RANGE { START $C2C8; END $C2C9; TYPE AddrTable; };
RANGE { START $C2CA; END $C2CA; TYPE ByteTable; };
RANGE { START $C2CB; END $C2CC; TYPE AddrTable; };
RANGE { START $C2CD; END $C2CD; TYPE ByteTable; };
RANGE { START $C2CE; END $C2CF; TYPE AddrTable; };
RANGE { START $C2D0; END $C2D0; TYPE ByteTable; };
RANGE { START $C2D1; END $C2D2; TYPE AddrTable; };
RANGE { START $C2D3; END $C3EC; TYPE ByteTable; };
RANGE { START $C3ED; END $C3ED; TYPE ByteTable; };
RANGE { START $C3EE; END $C3EE; TYPE ByteTable; };
RANGE { START $C3EF; END $C3F0; TYPE AddrTable; };
RANGE { START $C3F1; END $C3F1; TYPE ByteTable; };
RANGE { START $C3F2; END $C3F3; TYPE AddrTable; };
RANGE { START $C3F4; END $C3F4; TYPE ByteTable; };
RANGE { START $C3F5; END $C3F6; TYPE AddrTable; };
RANGE { START $C3F7; END $C3F7; TYPE ByteTable; };
RANGE { START $C3F8; END $C3F9; TYPE AddrTable; };
RANGE { START $C3FA; END $C4C5; TYPE ByteTable; };
RANGE { START $C4C6; END $C4C6; TYPE ByteTable; };
RANGE { START $C4C7; END $C4C7; TYPE ByteTable; };
RANGE { START $C4C8; END $C4C9; TYPE AddrTable; };
RANGE { START $C4CA; END $C4CA; TYPE ByteTable; };
RANGE { START $C4CB; END $C4CC; TYPE AddrTable; };
RANGE { START $C4CD; END $C4CD; TYPE ByteTable; };
RANGE { START $C4CE; END $C4CF; TYPE AddrTable; };
RANGE { START $C4D0; END $C605; TYPE ByteTable; };
RANGE { START $C606; END $C606; TYPE ByteTable; };
RANGE { START $C607; END $C607; TYPE ByteTable; };
RANGE { START $C608; END $C609; TYPE AddrTable; };
RANGE { START $C60A; END $C60A; TYPE ByteTable; };
RANGE { START $C60B; END $C60C; TYPE AddrTable; };
RANGE { START $C60D; END $C60D; TYPE ByteTable; };
RANGE { START $C60E; END $C60F; TYPE AddrTable; };
RANGE { START $C610; END $C610; TYPE ByteTable; };
RANGE { START $C611; END $C612; TYPE AddrTable; };
RANGE { START $C613; END $C7F0; TYPE ByteTable; };
RANGE { START $C7F1; END $C7F1; TYPE ByteTable; };
RANGE { START $C7F2; END $C7F2; TYPE ByteTable; };
RANGE { START $C7F3; END $C7F4; TYPE AddrTable; };
RANGE { START $C7F5; END $C7F5; TYPE ByteTable; };
RANGE { START $C7F6; END $C7F7; TYPE AddrTable; };
RANGE { START $C7F8; END $C7F8; TYPE ByteTable; };
RANGE { START $C7F9; END $C7FA; TYPE AddrTable; };
RANGE { START $C7FB; END $C7FB; TYPE ByteTable; };
RANGE { START $C7FC; END $C7FD; TYPE AddrTable; };
RANGE { START $C7FE; END $C991; TYPE ByteTable; };
RANGE { START $C992; END $C992; TYPE ByteTable; };
RANGE { START $C993; END $C993; TYPE ByteTable; };
RANGE { START $C994; END $C995; TYPE AddrTable; };
RANGE { START $C996; END $C9AF; TYPE ByteTable; };
RANGE { START $C9B0; END $C9B0; TYPE ByteTable; };
RANGE { START $C9B1; END $C9B1; TYPE ByteTable; };
RANGE { START $C9B2; END $C9B3; TYPE AddrTable; };
RANGE { START $C9B4; END $C9B4; TYPE ByteTable; };
RANGE { START $C9B5; END $C9B6; TYPE AddrTable; };
RANGE { START $C9B7; END $C9DE; TYPE ByteTable; };
RANGE { START $C9DF; END $C9DF; TYPE ByteTable; };
RANGE { START $C9E0; END $C9E0; TYPE ByteTable; };
RANGE { START $C9E1; END $C9E2; TYPE AddrTable; };
RANGE { START $C9E3; END $C9E3; TYPE ByteTable; };
RANGE { START $C9E4; END $C9E5; TYPE AddrTable; };
RANGE { START $C9E6; END $DFFF; TYPE ByteTable; };

# end of file
